// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package cn.com.smartdevices.bracelet.model; import cn.com.smartdevices.bracelet.DataManager; import cn.com.smartdevices.bracelet.Keeper; import cn.com.smartdevices.bracelet.analysis.SleepInfo; import cn.com.smartdevices.bracelet.analysis.StepsInfo; import java.io.Serializable; import java.util.ArrayList; import java.util.Calendar; import java.util.Iterator; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; // Referenced classes of package cn.com.smartdevices.bracelet.model: // SportDay, SportIndex, SportData, PersonInfo public class DaySportData implements Serializable { private static final long serialVersionUID = 1L; private ArrayList analysisDatas; private ArrayList datas; private ArrayList indexs; private SleepInfo mSleepInfo; private StepsInfo mStepsInfo; private boolean needPostProcess; private boolean needSyncToLocal; private boolean needSyncToServer; private ArrayList originDatas; private SportDay sDay; public DaySportData(int i, int j, int k) { this(new SportDay(i, j, k)); } public DaySportData(SportDay sportday) { sDay = null; datas = null; originDatas = null; indexs = new ArrayList(); needSyncToServer = false; needSyncToLocal = false; needPostProcess = true; mStepsInfo = null; mSleepInfo = null; analysisDatas = null; sDay = sportday; datas = new ArrayList(DataManager.INIT_INDEX_LIST); originDatas = new ArrayList(DataManager.INIT_ORIGIN_LIST); } public DaySportData(Calendar calendar) { this(new SportDay(calendar)); } private void handleIndex(int i, com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata) { if (activitydata.category == 126) { return; } if (indexs.size() == 0) { indexs.add(new SportIndex(i, i)); return; } SportIndex sportindex = (SportIndex)indexs.get(-1 + indexs.size()); if (1 + sportindex.stopIndex == i) { sportindex.stopIndex = i; return; } else { SportIndex sportindex1 = new SportIndex(i, i); indexs.add(sportindex1); return; } } public static DaySportData sFromBinaryData(SportDay sportday, byte abyte0[]) { int i = abyte0.length; DaySportData daysportdata = new DaySportData(sportday); for (int j = 0; j < i; j += 3) { com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata = new com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData(abyte0[j + 1], abyte0[j + 2], abyte0[j]); daysportdata.add(j / 3, activitydata); } return daysportdata; } public void add(int i, com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata) { if (((SportData)datas.get(i)).getSportMode() != 126) { return; } else { SportData sportdata = new SportData(i, 0xff & activitydata.category, 0xff & activitydata.intensity, 0xff & activitydata.steps); datas.set(i, sportdata); originDatas.set(i, activitydata); handleIndex(i, activitydata); return; } } public ArrayList data() { return datas; } public void fromBinaryData(SportDay sportday, byte abyte0[]) { int i = abyte0.length; for (int j = 0; j < i; j += 3) { com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata = new com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData(abyte0[j + 1], abyte0[j + 2], abyte0[j]); add(j / 3, activitydata); } } public ArrayList getAnalysisData() { return analysisDatas; } public byte[] getBinaryData() { ArrayList arraylist = originDatas; byte abyte0[] = new byte[3 * arraylist.size()]; for (int i = 0; i < arraylist.size(); i++) { com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata = (com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData)arraylist.get(i); abyte0[i * 3] = (byte)activitydata.category; abyte0[1 + i * 3] = (byte)activitydata.intensity; abyte0[2 + i * 3] = (byte)activitydata.steps; } return abyte0; } public int getDay() { return sDay.day; } public String getIndexS() { JSONArray jsonarray = new JSONArray(); for (Iterator iterator = indexs.iterator(); iterator.hasNext(); jsonarray.put(((SportIndex)iterator.next()).toJSONObject())) { } return jsonarray.toString(); } public String getKey() { return sDay.getKey(); } public int getMonth() { return sDay.mon; } public ArrayList getOriginData() { return originDatas; } public SleepInfo getSleepInfo() { return mSleepInfo; } public SportDay getSportDay() { return sDay; } public StepsInfo getStepsInfo() { return mStepsInfo; } public String getSummary() { JSONObject jsonobject = new JSONObject(); try { jsonobject.put("v", 4); if (mSleepInfo != null) { jsonobject.put(SleepInfo.KEY_SLEEP_INFO, mSleepInfo.getSummaryJson()); } if (mStepsInfo != null) { jsonobject.put(StepsInfo.KEY_STEP_INFO, mStepsInfo.getSummaryJson()); } jsonobject.put("goal", Keeper.readPersonInfo().getDaySportGoalSteps()); } catch (JSONException jsonexception) { jsonexception.printStackTrace(); } return jsonobject.toString(); } public int getYear() { return sDay.year; } public boolean isLocalNeedSync() { return needSyncToLocal; } public boolean isNeedPostProcess() { return needPostProcess; } public void merge(DaySportData daysportdata) { ArrayList arraylist = daysportdata.getOriginData(); int i = arraylist.size(); for (int j = 0; j < i; j++) { com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata = (com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData)arraylist.get(j); if (activitydata.category != 126 && activitydata.category != 127) { add(j, activitydata); } } } public void setAnalysisData(ArrayList arraylist) { analysisDatas = arraylist; } public void setLocalNeedSync(boolean flag) { needSyncToLocal = flag; } public void setNeedPostProcess(boolean flag) { needPostProcess = flag; } public void setNeedSync(boolean flag) { needSyncToLocal = flag; needSyncToServer = flag; } public void setSleepInfo(SleepInfo sleepinfo) { mSleepInfo = sleepinfo; } public void setStepsInfo(StepsInfo stepsinfo) { mStepsInfo = stepsinfo; } }